昨天提到透過現成的工具設計流程圖或架構圖,而今天的內容會分享使用純程式語言的方式繪製,並且也會分享在發想階段到推導出可以應用的架構靈感。
這個套件是個開源專案,並且可以至Github的專案連結檢視基本資訊的介紹,而程式語言是使用Python所以在學習上較方便,接著就從指引文件來逐步了解圖片產出前的過程。
備註 : 需留意除了安裝python的套件外,另外要下載Graphviz的繪製函示庫。
It uses Graphviz to render the diagram, so you need to install Graphviz to use diagrams. After installing graphviz (or already have it), install the diagrams.
在Quick start的區塊參照下述的範例程式碼,接著執行當前的py檔案後就會產生一張架構圖。
# diagram.py
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB
with Diagram("Web Service", show=False):
ELB("lb") >> EC2("web") >> RDS("userdb")
python 當前的檔案名稱.py
然後從上圖可以看到使用了ELB、EC2、RDS的功能圖片,這些都是歸類在Nodes的區塊內,然後從分類的區塊可以看到像是雲端的服務(GCP、AWS、Azure),或者跟硬體和軟體有關聯的都可以使用。
至於要怎麼使用以Azure的服務為例要使用AppServices的Nodes,接著import AppServices的class之後,記得要將架構圖的關聯加入剛剛定義的AppServices,在輸出的結果就可以看到流程更新後的結果。
另外如果是需要做分群或者是雙向關係的架構圖,則可以參考Edges的範例程式碼,在輸出的結果可以看到藍色的區塊為cluster,並且指向的顏色也可以因應設計的情況調整。
總結上述的應用,如果對於程式語言較成熟並且腦中有一個構想圖的時候,這個套件可以快速產生想要的流程或是架構圖,並且應用的節點有重覆的情況下圖片引用的時候也很迅速。
在考量解決方案的過程中,有一部分會先去檢視已經有提出的架構當作參考的基礎,例如流覽 Azure 架構和AWS 架構中心,再來就是可以去看看一些開源專案或者是技術新知,有一些提出來的觀點或者是新的工具和服務,都是潛在整個解決方案的一塊拼圖。
當累積了多個層面的知識(點)之後,搭配不斷的思考(線)就可以有越來越多的組合(面)從腦海浮現出來